#ifndef _CLIENTSOCKET_H
#define _CLIENTSOCKET_H

#pragma once
#include "Socket.h"

namespace net
{
/*
 * This is an interface to define the basic behaviour of a client socket.
 * Implementation specific code must be placed in classes implementing
 * this interface.
 */
class ClientSocket : public Socket
{
public:
	ClientSocket(void);
	virtual ~ClientSocket(void);
	virtual void doConnect(void)=0;
	virtual int doSend(const char*)=0;
	virtual int doSendComplete(const char*)=0;
	virtual int doReceive(char*, int)=0;
	virtual int doReceiveComplete(char*)=0;
	virtual void doShutdown(void)=0;
	virtual string toString(void)=0;
};
};

#endif
